Parallax Background (視差のある背景)
ゲームには、背景画像はつきもの
よりリアルさ、没入感、スピード感を与えるのに役立つ
immersive(没入感)
gives the illusion of speed (スピード感を与える)
Parallax
2地点での観測位置の違いにより、対象点が見える方向が違うこと
2D においては、
遠いBackground layerは遅く動く
近いForeground layerは速く動く
ということで視差を表現できる。
背景の移動速度が早ければ速いほど、playerはスピード感を感じる
Godotでこれを実現するには、
Camera2D
ParallaxBackGround (CanvasLayer)
ParallaxLayer
TextureRect
... n個
というNodeを作る
Camera2Dの直下のCanvasLayerは特別な意味を持ち、
そのカメラに作用する
ParallaxBackground
Camera2Dの子要素に、ParallaxBackgroundを追加
ParallaxBackgroundはCanvasLayerの1つ
CanvasLayerの特徴は、
位置情報を持たず、ゲームに描写される
ゲーム内のアートワークに表示を妨げられない
動かず、ゲーム画面内に残り続ける
ignore_camera_zoom : bool
ParallaxLayerがカメラのズームを無視してミラーする
これをチェックすると、ズームしようが
ParallaxLayer
配下にTextureRectを持つ
Scale
移動する速さ
小さくすると遅くなる (1がカメラと同じ速さ)
Mirrorring
ここで指定したpixelだけ移動したら繰り返す。
0にするとループしない
Offset
表示する高さを調整する
Hoppy Daysでは雲の背景をy方向に-750pxずらす(そうしないと、結構下に行かないと見えない)
例. 空と雲
https://gyazo.com/9c7d3041a58307f0c8f4de50b15ae27c
上から順に、
1
0.5
0.75
1
の順で、ParallaxLayerのScale.xを設定する
全体のOffsetを設定する
背景の重ねですでに画ができているなら、LayerではなくGround全体でBaseOffsetを設定したほうがいい
BaseOffset.y = -1024 くらいにしておく